package com.hzhc.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzhc.entity.YwOrder;
import com.hzhc.entity.YwOrderCar;
import com.hzhc.entity.YwOrderCntr;
import com.hzhc.utils.ResultUtil;
import com.hzhc.vo.TrainPlanDetailVo;
import com.hzhc.vo.YwOrderCarVo;
import com.hzhc.vo.YwOrderVo;
import org.apache.poi.ss.formula.functions.T;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
 * <p>
 * 业务委托 服务类
 * </p>
 *
 * @author Fchenxu
 * @since 2024-05-27
 */
public interface YwOrderService extends IService<YwOrder> {

    ResultUtil<T> updateYwOrderArea(YwOrderVo vo);

    List<YwOrderVo> getYwOrderList(Page<YwOrderVo> page, YwOrderVo vo);

    List<YwOrderVo> getOrderPage(Page<YwOrderVo> page, YwOrderVo vo);

    ResultUtil<T> addOrder(YwOrderVo vo,String url);

    ResultUtil<T> updateOrder(YwOrderVo vo);

    ResultUtil<T> deleteOrder(Integer id);

    ResultUtil<T> updateCheck(YwOrderVo vo);

    List<YwOrderVo> getYwOrderVoJson(Page<YwOrderVo> page, YwOrderVo vo);

    //提空重进
    ResultUtil<T> addTkzjOrder(HttpServletRequest request, YwOrderVo vo);

    ResultUtil<T> updateTkzjOrder(YwOrderVo vo);

    ResultUtil<T> addTzOrder(YwOrderVo vo);

    ResultUtil<T> updateTzOrder(YwOrderVo vo);

    //散改集业务add
    ResultUtil<T> addSgjOrder(YwOrderVo vo,String url);

    List<YwOrderVo> getAllSgjList(Page<YwOrderVo> page, YwOrderVo vo);

    ResultUtil<T> updateSgjOrder(YwOrderVo vo);

    ResultUtil<T> deleteSgjOrder(Long id);

    List<YwOrderVo> getYwOrderSgjList(Page<YwOrderVo> page, YwOrderVo vo);

    ResultUtil<T> AddSgjCntrAndCarMsg(YwOrderVo vo);

    List<YwOrderVo> getYwOrderListByCarNo(Page<YwOrderVo> page,YwOrderVo vo);

    ResultUtil<T> updateSgjPlan(YwOrderVo vo);

    List<YwOrderCntr> getSgjCntrMsg(YwOrderCntr cntr);

    List<YwOrderCarVo> getSgjCarMsg(YwOrderCarVo car);

    ResultUtil<T> SgjIssued(YwOrderVo vo);

    ResultUtil<T> submitOrder(YwOrderVo vo);

    ResultUtil<List<TrainPlanDetailVo>> importYwOrderFile(YwOrderVo vo, String ywOderFileUploadFolder, String ywOderFileAccessPath);

    ResultUtil<List<TrainPlanDetailVo>> importYwOrderBillNoFile(YwOrderVo vo, String ywOderFileUploadFolder, String ywOderFileAccessPath);

    ResultUtil<T> deleteYwOrderFile(Integer id);

    ResultUtil<T> updateFinish(YwOrderVo vo);

    ResultUtil<T> addCheckSgjOrder(YwOrderVo vo);

    YwOrderVo getByOrderNo(String orderNo);

    void autoFinishYworder();

    List<YwOrderVo> getYwOrderNoByType(YwOrderVo vo);

    List<YwOrderVo> getPowerOrderList(Page<YwOrderVo> page, YwOrderVo vo);

    ResultUtil<T> addPowerCar(YwOrderVo vo);

    List<YwOrderCarVo> getPowerCarList(Page<YwOrderCarVo> page, YwOrderVo vo);

    List<YwOrderVo> getCzPowerOrderList(Page<YwOrderVo> page, YwOrderVo vo);

    ResultUtil<T> addCzPowerCar(YwOrderVo vo);
}
